home *** CD-ROM | disk | FTP | other *** search
/ Merciful 2 / Merciful - Disc 2.iso / software / s / scdbv1.0d.lha / scdb_10d / scdb.doc < prev    next >
Text File  |  1995-03-15  |  13KB  |  381 lines

  1.  
  2. SCDB.DOC                SCDB version 1.0c                 Achim Gorski
  3.                 Mar 1995
  4.  
  5. SCDB, (c) Copyright 1994-95, Achim Gorski.  All Rights Reserved.
  6.  
  7. This  software  may be distributed for non-profit only.  This software
  8. is FREEWARE, but NOT FOR COMMERICAL USE!  This program is provided "as
  9. is"  without  warranty  of  any  kind.   All risks involved using this
  10. program  is  entirely  yours.  The author assumes no responsibility or
  11. liability  whatever  for  any damage or dataloss caused by using SCDB.
  12. Although  everything  has  been done to make sure the program is fully
  13. functional, the author cannot guarantee this for a 100%.
  14.  
  15.     Achim Gorski
  16.     Starenweg 27
  17.     50997  Koeln
  18.       Germany
  19.  
  20.  
  21.  
  22.  
  23.     Donations welcome but not solicited.
  24.  
  25.  
  26.  
  27.  
  28. SCDB - a Sound Carrier DataBase.
  29.  
  30. SCDB  is  based  on  isam (indexed sequential acces method) and uses a
  31. multilevel index structure.
  32. If  you  search  for Artist/Title and you know the first characters of
  33. Artist,  SCDB  should find this entry in N/72 comparisons and (N/36)+1
  34. for  a  unsuccessful  search.(  N = number of entries) Ok, this is not
  35. binarysearch  or  treesearch but it was the easiest and fastest way to
  36. realizse SCDB.
  37.  
  38.  
  39. ----------------------------------------------------------------------
  40. -- AMIGA: Don't use the Commodore-shell, 'cause it filters CTRL-C/D --
  41. -- OTHER: Some shells may filter Xon/Xoff CHRs : ^Q ^S ^X ^C        --
  42. --        Try to disable any filter or SCDB won't work correctly.   --
  43. ----------------------------------------------------------------------
  44.  
  45. ALPHA (DEC), INTEL, ...
  46.  
  47. !!  THE  DEFAULT  "Music.SDB" SCDB-DATABASE IS A 32 BIT BIG-ENDIAN  !!
  48. !!    BYTE ORDERING DATABASE.  USE THE BUILD-IN CONVERT FUNCTION    !!
  49.  
  50. Some   Processors   (e.g.    Intel   &   National  Semiconductor)  use
  51. little-endian  byte  ordering!   The default SCDB-database is saved in
  52. big-endian byte ordering.
  53.  
  54. Little-endian  byte  ordering  processors address the lowest byte with
  55. increasing addresses.
  56.  
  57. Example:
  58.  
  59. ADDRESS|00|01|02|03
  60. -------+--+--+--+--
  61. VALUE  |AA|BB|CC|DD     <- Big-endian byte ordering
  62.        |DD|CC|BB|AA     <- Little-endian byte ordering
  63.  
  64. ----------------------------------------------------------------------
  65.  
  66.  
  67.  
  68. Edit   the   files   'Category',  'Label'  and  'Type'  for  your  own
  69. configuration.   Maximum possible entries in 'Category'(max.  30 chars
  70. per row) and 'Label'(max.  38 chars per row) are 99.  Maximum possible
  71. entries  in 'Type'(max.  11 chars per row) are 31.  These files should
  72. be  in  the  current  directory  (only  'Type'  has a build-in default
  73. configuration).   After  changing  'Type'  you  should reorganize your
  74. database or you will get wrong statistics!
  75. The  default  'Music.SDB' SCDB-database will be read if no argument is
  76. given!  Do not read this document (waste of time)!  Use the program!!
  77.  
  78. Try 'SCDB -h'.
  79.  
  80.  
  81. Short INFO about SCDB:
  82.  
  83.  
  84. COMMAND MODE
  85.  
  86.  
  87. CTRL-?
  88.    Help
  89.  
  90.  
  91. CTRL-F
  92.    Find  Artist/Title.   Try TAB-completion (once:  ARTIST-completion,
  93. twice:      TITLE-completion).     The    function    ignores    every
  94. none-alphanumeric-chars !!
  95.  
  96.  
  97. F
  98.    Find next Artist/Title
  99.  
  100.  
  101. CTRL-L
  102.    Log  record  IN  or  OUT.   Ok,  you loaned it - this should change
  103. LOCATION.  Your chance to change it.
  104.  
  105.  
  106. L
  107.    List loaned records.
  108.  
  109.  
  110. V
  111.    View index ON/OFF
  112. If index ON:
  113.  
  114.         KEY                     ACTION
  115.        ----------------------------------------------------
  116.         7                       jump to top of page
  117.         1                       jump to bottom of page
  118.         SPACE/DEL               one page forward/backward
  119.         arrow right/left        one page forward/backward
  120.         arrow up/down or +/-    one line forward/backward
  121.  
  122.  
  123. --Cherrymoon <--.
  124.   +---Trax II   |                                *L 10/1994 Vinyl-Maxi
  125.       ^         |                                ^    ^      ^
  126.       |         `-- artist                       |    |      |
  127.       `------------ title     record is loaned --´    |      |
  128.                                   release date -------´      |
  129.                                           type --------------´
  130.  
  131.  
  132. S
  133.    Searches for the string found in 'See also'
  134.  
  135.  
  136. CTRL-S
  137.    Statistics
  138.                 TT:    0y  0d 0h 0m 0s (Total time of Total Time) -:))
  139.                         |   |  |  |  |
  140.                         |   |  |  |  `-- seconds
  141.                         |   |  |  `----- minutes
  142.                         |   |  `-------- hours
  143.                         |   `----------- days
  144.                         `--------------- years
  145.  
  146. CTRL-P
  147.    Print  current  entry  to  SCDB_OUTPUT.   If  you want to use this
  148. functions, you should set the enviroment-variable 'SCDB_OUTPUT'.
  149.  
  150.                 UNIX :  set SCDB_OUTPUT=value
  151.                         export SCDB_OUTPUT
  152.                         (depends on your shell)
  153.                         "value" is the printer-device!
  154.                         BSD Unix: look at /etc/printcap
  155.                         for the printer-device!
  156.                 AMIGA:  setenv SCDB_OUTPUT="prt:"
  157.                 OTHER:  Read your system manual !
  158.  
  159. SCDB_OUTPUT should be an ASCII-printer or a filename.
  160.  
  161.  
  162. P
  163.    Print current entry (short output!).
  164.  
  165.  
  166. CTRL-R
  167.    Reorganizes the database.  You should do this if you update from an
  168. old  to  a new SCDB-version.  Regorganize will correct all statistics,
  169. remove  trash  and  sort  the  database  on  disk.  Never reorganize a
  170. database  if  you  run  SCDB twice or more on the same database!  This
  171. cost only your time and will reorganize nothing.
  172.  
  173.  
  174. CTRL-H
  175.    Hunts  for  specific  information  in  the  whole  database.   This
  176. function  will  need  some time !  TAB completes Artist, Title, Label,
  177. Type,  Category.   It  is  possible  to  type  an  Artist-name  in the
  178. Title-field.   The result is the first title of the given Artist-name.
  179. Example:
  180.                 Title: boo<TAB>
  181.                        ...
  182.                 Title: 24 Hours
  183.  
  184.  
  185. CTRL-W
  186.    Reads  the  whole  database and creates a LIST of all entries which
  187. match  with  the  given  key(s).   Hunts for specific information like
  188. CTRL-H.   The  output  goes to SCDB_OUTPUT (look at CTRL-P).  '**' in
  189. Artist-field creates a list of the whole database.
  190.  
  191.  
  192. W
  193.    Reads  the whole database and creates a LIST (short output!).  '**'
  194. in Artist-field creates a list of the whole database.
  195.  
  196.  
  197. CTRL-O
  198.    Prints  a  CassCover  of  selected  entries to SCDB_PRINTER.  While
  199. choosing  entries  it  is possible to use every function of SCDB (e.g.
  200. FIND,  HUNT,...).   If  you want to use this functions, you should set
  201. the  enviroment-variable  'SCDB_PRINTER'.
  202.  
  203.                 UNIX :  set SCDB_PRINTER=value
  204.                         export SCDB_PRINTER
  205.                         (depends on your shell)
  206.                         "value" is the printer-port!
  207.                         BSD Unix: look at /etc/printcap
  208.                         for the port name!
  209.                 AMIGA:  If your printer is on the parallel-port:
  210.                         setenv SCDB_PRINTER="par:"
  211.                 OTHER:  Read your system manual !
  212.  
  213. Your  printer  should support IBM/Epson printer commands and character
  214. sets and should not set to stay in panel style at power-up.
  215.  
  216.  
  217. CTRL-U
  218.    Print   label.   Output  goes  to  SCDB_PRINTER.   You  should  use
  219. self-adhesive labels (101,6 x 35,7 mm).
  220.  
  221.  
  222. CTRL-^
  223.    Import  ASCII  delimited.  The IMPORT-function is just a by-product
  224. of my own imported database.  So don't overrate it!
  225.  
  226.  
  227. CTRL-\
  228.    This  function  let  you  exchange  SCDB-databases  from  different
  229. systems.   It  is possible to import any SCDB-database from any system
  230. to  any system!  Little/Big-endian byte ordering or 32/64 bit(or more)
  231. systems - no matter !  This function imports all.
  232.  
  233.                 Example:
  234.                 [Input:]        misc/alpha/Music.SDB
  235.  
  236. This  will  import  a  64  bit  little-endian  byte ordering database.
  237. Comment:   importing a 64 bit database to a 32 bit system works if the
  238. database is less then 4 Gbytes (2^32)!
  239. This function also imports old SCDB-databases.  Old SCDB-databases are
  240. less or equal version 1.0c (02.03.95).
  241.  
  242.  
  243.  
  244.    ... all other functions should explain itself.
  245.  
  246.  
  247.  
  248. EDITOR MODE
  249.  
  250.  
  251. Functions   should  explain  itself.   :-)  (lazy  programmer)  (Rule:
  252. writehowyalikeit!)
  253.  
  254. While editing Tracks it is possible to press TAB for Artist completion
  255. (only  if Artist is 'Various Artists' and only in the second half of a
  256. string).
  257.  
  258.  
  259. No  further  decription  at this time:  Just use it.  Hit the keys and
  260. you will see the results.
  261.  
  262. FUTURE: Any ideas??: send me mail.
  263.  
  264.  
  265.  
  266. ----------------------------------------------------------------------
  267.  
  268.  
  269. FOR THOSE WHO WANT TO KNOW MORE ABOUT THIS DATABASE:
  270.  
  271.  
  272.         Some information about the input-fields:
  273.  
  274.         Field name      Attributes        Chars  Comment
  275.         --------------------------------------------------------------
  276.         Artist          Capitalize Words    49   Minimum: 1 char !
  277.         Title           Capitalize Words    49   Not after "'"
  278.         Label           Capitalize Words    38   Not after "'"
  279.         Catalog         Upper case          26
  280.         See also        Text                67
  281.         Type            Text                11
  282.         Released        Numeric              7   (?, mm/yyyy or yyyy)
  283.         Number          Numeric              2   0 < x < 100
  284.         Tracks          Numeric              4   0 < x < (99*Number)
  285.         Category        Capitalize Words    30
  286.         Location        Text                23
  287.         Barcode         Numeric             18
  288.         Comment         Text              1368
  289.         TRK             Capitalize Words    68   Not after "'"
  290.         Time            Numeric              5   (mm:ss)
  291.  
  292.  
  293.  
  294.    THE STRUCTURE OF THE MAIN-FILE:
  295.  
  296.  
  297.    pos  length[byte]    field           comment
  298.  ---------------------------------------------------------------------
  299.  ( <= Version 1.0c (02.03.95):                                       )
  300.  ( 0.   1               ID              only once in the database    )
  301.  (                                      always 8                     )
  302.  
  303.    >= Version 1.0d:
  304.    0.   3               ID              only once in the database
  305.                                         (always in Big-endian byte 
  306.                                          ordering!!) Looks like that:
  307.    struct scdb_id {
  308.                     unsigned int   ID_1:4; /* ID_1: always 8        */
  309.                     unsigned int endian:1; /* 1/0 big/little-endian */
  310.                     unsigned int  longs:6; /* bits=((longs+1)*4*8)  */
  311.                     unsigned int   ID_2:7; /* ID_2=ID_1+endian+longs*/
  312.                     unsigned int       :6; /* Future                */
  313.                   };
  314.  
  315.  
  316.    1.   unsigned long   size of record
  317.  
  318.    2.   1               length
  319.         max. 49         Artist          min. 1
  320.    3.   1               length
  321.         max. 49         Title
  322.    4.   1               length
  323.         max. 38         Label
  324.    5.   1               length
  325.         max. 26         Catalog
  326.    6.   1               length
  327.         max. 11         Type
  328.    7.   1               length
  329.         max. 7          Released
  330.    8.   1               ..
  331.         max. 2          Number          min. '1'
  332.    9.   1               ..
  333.         max. 4          Tracks          min. '1'
  334.    10.   1              ..
  335.         max. 30         Category
  336.    11.  1               length=23       length always 23
  337.         23              Location
  338.    12.  1               length
  339.         max. 18         Barcode
  340.    13.  1               ..
  341.         11              Loaned on
  342.    14.  1               ..
  343.         8               Total Time
  344.    15.  1               ..
  345.         11              Rec-Date
  346.    16.  1               ..
  347.         max. 67         See also
  348.    17.
  349.       18 lines comment
  350.       saved in the known format: length,string,length,string,....
  351.                                   \__1   \__max.76
  352.    18.
  353.       Number of tracks per disc per record.
  354.       Example(VA-Club Classics Volume 1):
  355.         Number=2, Tracks=23; something like that should be saved:
  356.         0b 0c
  357.    19.
  358.        length,track-string,length,time,...... (for every track)
  359.         \__1   \__max.68    \__1   \__max.5
  360.  
  361.    ...next record -> goto 1.
  362.  
  363.  
  364.    Index-structure is a little bit different (build your own).
  365.    (I really hate writing documents ..^@#]´`%$`~/:@}[§"!}+..)
  366.  
  367.  
  368.  
  369.  
  370. ----------------------------------------------------------------------
  371.                        |  |  |  |  |  |  |  |  |
  372.                        |  |  |  |  |  |  |  |  |
  373.                        |  |  |  |  |  |  |  |  |
  374.                        !  !  SAVE THE VINYL !  !
  375.                        |  |  |  |  |  |  |  |  |
  376.                        |  |  |  |  |  |  |  |  |
  377.                           |  |  |  |  |  |  |
  378.                              |  |  |  |  |
  379.                                 |  |  |
  380.                                    |
  381.